﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ServiceModel.Channels;
using System.ComponentModel;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class ClienteRealizarCompra : System.Web.UI.Page
    {
        ObjetoCliente cliente = new ObjetoCliente();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        Utilizadades_WS util = new Utilizadades_WS();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));
            }

            if (Request.QueryString["SucessoCompra"] == "1")
            {
                labelAviso.Text = "Compra efetuada com sucesso!";
                labelAviso.ForeColor = System.Drawing.Color.Green;
                labelAviso.Visible = true;
                Session["carrinho"] = "";
            }

            BindingList<UF> listaUF = new BindingList<UF>(util.Get_UFs());
            ObjetoCliente[] listaCliente = webServiceCliente.ListCliente();
            BindingList<ObjetoBebida> listaBebiba = new BindingList<ObjetoBebida>(util.SearchBebidas(""));

            if (!Page.IsPostBack)
            {


                foreach (var item in listaBebiba)
                {
                    ListItem li = new ListItem();
                    li.Text = item.Descricao;
                    li.Value = item.Id.ToString();
                    DropDownListBebida.Items.Add(li);
                }

            }

        }

        protected void BtAdicionarBebidaDose_Click(object sender, EventArgs e)
        {
            labelAviso.Visible = false;
            
            if (textBoxDoses.Text.Trim().Equals(""))
            {
                labelAviso.Text = "Quantidade de doses deve ser preenchido.";
                labelAviso.ForeColor = System.Drawing.Color.Red;
                labelAviso.Visible = true;
                textBoxDoses.Focus();
                return;
            }
            else
            {
                try
                {
                    Convert.ToInt32(textBoxDoses.Text.Trim());

                }
                catch (FormatException)
                {
                    labelAviso.Text = "Informe um número válido.";
                    labelAviso.ForeColor = System.Drawing.Color.Red;
                    labelAviso.Visible = true;
                    textBoxDoses.Focus();
                    return;
                }
                if (Convert.ToInt32(textBoxDoses.Text.Trim()) <= 0)
                {
                    labelAviso.Text = "Quantidade de doses não pode ser menor ou igual a zero.";
                    labelAviso.ForeColor = System.Drawing.Color.Red;
                    labelAviso.Visible = true;
                    textBoxDoses.Focus();
                    return;
                }

            }

            String[] listaCarrinho;
            string carrinho;
            bool jaExiste = false;

                        
            int idBebida = Convert.ToInt32(DropDownListBebida.SelectedValue.ToString());
            int qtde = Convert.ToInt32(textBoxDoses.Text.Trim());
            int novaQtd = 0;

            
            carrinho = Session["carrinho"].ToString();

            listaCarrinho = carrinho.Split(',');

            if (listaCarrinho.Count() == 0 )
            {
                Session["carrinho"] += idBebida + "-" + qtde + ",";
            }
            else
            {

                for (int i = 0; i < listaCarrinho.Count() - 1; i++)
                {
                    if (listaCarrinho[i].Substring(0, listaCarrinho[i].IndexOf("-")).Equals(idBebida.ToString())) {
                        novaQtd = Convert.ToInt32(listaCarrinho[i].Substring(listaCarrinho[i].IndexOf("-") + 1, (listaCarrinho[i].Length - 1) - listaCarrinho[i].IndexOf("-")));
                        listaCarrinho[i] = idBebida+"-"+(novaQtd + Convert.ToInt32(qtde)).ToString();
                        jaExiste = true;   
                    }
                }

                

                if (jaExiste == true)
                {
                    Session["carrinho"] = "";
                    for (int i = 0; i < listaCarrinho.Count() - 1; i++)
                    {
                        Session["carrinho"] = Session["carrinho"] + listaCarrinho[i].ToString() + ",";
                    }

                }
                else {
                    Session["carrinho"] += idBebida + "-" + qtde + ",";
                }
                

            }

            labelAviso.Text = "Bebida adicionada ao carrinho!";
            labelAviso.ForeColor = System.Drawing.Color.Green;
            labelAviso.Visible = true;

            textBoxDoses.Focus();
        }
    }
}




